package org.ajax.test;

import com.google.gson.Gson;
import org.ajax.entity.User;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author XCH
 * @date 2024-11-19
 */
public class GsonTest01 {
    public static void testTOJson(){
        // 第一：实例化实体对象，封装相关的数据
        User user = new User("张三",20) ;
        // 第二：实例化 Gson 对象
        Gson gson = new Gson();
        // 第三：把实体对象转换为 JSON 字符串
        String json = gson.toJson(user);
        System.out.println(json);
    }
    private static void testFromJson() {
        // 第一：定义JSON字符串
        String json = "{\"username\":\"zs\",\"age\":18}" ;
        // 第二：实例化 Gson 对象
        Gson gson = new Gson();
        // 第三：把实体对象转换为 JSON 字符串

        User user = gson.fromJson(json, User.class);
        System.out.println(user);
    }
    public static void testTOJsonList(){
        // 第一：实例化实体对象，封装相关的数据
        List<User> list = new ArrayList<>();
        User u1 = new User("张三",20) ;
        User u2 = new User("李四",22) ;
        User u3 = new User("王五",23) ;
        list.add(u1);
        list.add(u2);
        list.add(u3);
        // 第二：实例化 Gson 对象
        Gson gson = new Gson();
        // 第三：把实体对象转换为 JSON 字符串
        String json = gson.toJson(list);
        System.out.println(json);
    }
    public static void testTOJsonMap(){
        // 第一：实例化实体对象，封装相关的数据
        Map<String, User> map = new HashMap<>();
        User u1 = new User("张三",20) ;
        User u2 = new User("李四",22) ;
        User u3 = new User("王五",23) ;
        map.put("u1",u1);
        map.put("u2",u2);
        map.put("u3",u3);
        // 第二：实例化 Gson 对象
        Gson gson = new Gson();
        // 第三：把实体对象转换为 JSON 字符串
        String json = gson.toJson(map);
        System.out.println(json);
    }
    public static void main(String[] args) {
        //testFromJson();
        //testTOJsonList();
        testTOJsonMap();
    }
}
